//
//  PUIWebBVAPI.m
//  browserHD
//
//  Created by kevinxuls on 13-5-22.
//  Copyright (c) 2013年 Terry. All rights reserved.
//

#import "PUIWebBVAPI.h"

@implementation PUIWebBVAPI

+ (PUIWebBVAPI *)defaultKit {
    static PUIWebBVAPI *defaultKit;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        defaultKit = [[PUIWebBVAPI alloc] init];
    });
    return defaultKit;
}

- (id)init {
    self = [super init];
    if (self) {
        self.type = [[NSString alloc] initWithString:NSStringFromClass([self class])];
        
        self.selectors = @[@"aXNEaXNwYXRjaGluZ1RvdWNoRXZlbnRz",                                                     //0//@property(readonly, assign, nonatomic) BOOL isDispatchingTouchEvents;
                           @"bWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckFjdGlvbg==",                                         //1//@property(assign, nonatomic) BOOL mediaPlaybackRequiresUserAction;
                           @"c2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckFjdGlvbjo=",                                     //2//setMediaPlaybackRequiresUserAction:
                           @"YWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjaw==",                                                 //3//@property(assign, nonatomic) BOOL allowsInlineMediaPlayback;
                           @"c2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjazo=",                                             //4//setAllowsInlineMediaPlayback:
                           @"X2VkaXRpbmdEZWxlZ2F0ZUZvckV2ZXJ5dGhpbmdFeGNlcHRGb3Jtcw==",                             //5//_editingDelegateForEverythingExceptForms
                           @"",
                           @"aGFzRWRpdGVkVGV4dEZpZWxk",                                                             //7//@property(readonly, assign, nonatomic) BOOL hasEditedTextField;
                           @"aW5wdXRWaWV3Qm91bmRz",                                                                 //8//@property(assign, nonatomic) CGRect inputViewBounds;
                           @"c2V0SW5wdXRWaWV3Qm91bmRzOg==",                                                         //9//setInputViewBounds:
                           @"aW5wdXRWaWV3T2JleXNET01Gb2N1cw==",                                                     //10//@property(assign, nonatomic) BOOL inputViewObeysDOMFocus;
                           @"c2V0SW5wdXRWaWV3T2JleXNET01Gb2N1czo=",                                                 //11//setInputViewObeysDOMFocus:
                           @"YWNjZXNzb3J5RW5hYmxlZDo=",                                                             //12//@property(assign, nonatomic, getter=isAccessoryEnabled) BOOL accessoryEnabled;
                           @"aXNBY2Nlc3NvcnlFbmFibGVk",                                                             //13//isAccessoryEnabled
                           @"X2N1cnJlbnRBc3Npc3RlZE5vZGU=",                                                         //14//@property(retain, nonatomic) DOMNode* _currentAssistedNode;
                           @"",
                           @"X2lucHV0",                                                                             //16//@property(retain, nonatomic) NSObject<UIFormPeripheral>* _input;
                           @"",
                           @"X2FjY2Vzc29yeQ==",                                                                     //18//@property(retain, nonatomic) UIWebFormAccessory* _accessory;
                           @"",
                           @"X1BERlBhZ2VOdW1iZXJMYWJlbDo=",                                                         //20//+(id)_PDFPageNumberLabel:(BOOL)label;
                           @"aXNBdXRvRmlsbEFsbG93ZWQ=",                                                             //21//+(BOOL)isAutoFillAllowed;
                           @"Z2V0VUlXZWJCcm93c2VyVmlld0ZvcldlYkZyYW1lOg==",                                         //22//+(id)getUIWebBrowserViewForWebFrame:(id)webFrame;
                           @"cHJlZmVycmVkU2Nyb2xsRGVjZWxlcmF0aW9uRmFjdG9y",                                         //23//+(float)preferredScrollDecelerationFactor;
                           @"d2ViVmlldzpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRJbkZyYW1lOg==",                     //24//-(void)webView:(id)view didFirstVisuallyNonEmptyLayoutInFrame:(id)frame;
                           @"X2Fic29sdXRlVXJsUmVsYXRpdmVUb0RvY3VtZW50VVJMOg==",                                     //25//-(id)_absoluteUrlRelativeToDocumentURL:(id)documentURL;
                           @"X3NldFVJV2ViVmlld1VzZXJBZ2VudA==",                                                     //26//-(void)_setUIWebViewUserAgent;
                           @"X3NldEJyb3dzZXJVc2VyQWdlbnRQcm9kdWN0VmVyc2lvbjpidW5kbGVWZXJzaW9uOg==",                 //27//-(void)_setBrowserUserAgentProductVersion:(id)version bundleVersion:(id)version2;
                           @"X2J1aWxkVmVyc2lvbg==",                                                                 //28//-(id)_buildVersion;
                           @"X3N0YXJ0VVJMaWZpY2F0aW9uSWZOZWVkZWRDb2FsZXNjZTo=",                                     //29//-(void)_startURLificationIfNeededCoalesce:(BOOL)coalesce;
                           @"X3NldFNlbGVjdGVkRE9NUmFuZ2VBbmRVcGRhdGVVSTo=",                                         //30//-(void)_setSelectedDOMRangeAndUpdateUI:(id)ui;
                           @"X2NsZWFyU2VsZWN0aW9uQW5kVUk=",                                                         //31//-(void)_clearSelectionAndUI;
                           @"X2R1bXBXZWJBcmNoaXZlQXRQYXRoOg==",                                                     //32//-(void)_dumpWebArchiveAtPath:(id)path;
                           @"X3JlcXVlc3RXaXRoVURJREhlYWRlcklmQXBwcm9wcmlhdGU6",                                     //33//-(id)_requestWithUDIDHeaderIfAppropriate:(id)udidheaderIfAppropriate;
                           @"X2RvbWFpbklzV2hpdGVsaXN0ZWRGb3JVRElESGVhZGVyOg==",                                     //34//-(BOOL)_domainIsWhitelistedForUDIDHeader:(id)udidheader;
                           @"X3VwZGF0ZVBERlBhZ2VOdW1iZXJMYWJlbFdpdGhVc2VyU2Nyb2xsaW5nOmFuaW1hdGVkOg==",
                           //35//-(void)_updatePDFPageNumberLabelWithUserScrolling:(BOOL)userScrolling animated:(BOOL)animated;
                           @"X29yaWdpbkZvclBERlBhZ2VMYWJlbEluU3VwZXJ2aWV3Og==",                                     //36//-(CGPoint)_originForPDFPageLabelInSuperview:(id)superview;
                           @"X2ZpcnN0VmlzaWJsZVBERlBhZ2VOdW1iZXI=",                                                 //37//-(unsigned)_firstVisiblePDFPageNumber;
                           @"X2NsZWFyQWxsQ29uc29sZU1lc3NhZ2Vz",                                                     //38//-(void)_clearAllConsoleMessages;
                           @"Y2xlYXJNZXNzYWdlc01hdGNoaW5nTWFzazo=",                                                 //39//-(void)clearMessagesMatchingMask:(int)mask;
                           @"bWVzc2FnZXNNYXRjaGluZ01hc2s6",                                                         //40//-(id)messagesMatchingMask:(int)mask;
                           @"d2ViVmlldzpkaWRSZWNlaXZlTWVzc2FnZTo=",                                                 //41//-(void)webView:(id)view didReceiveMessage:(id)message;
                           @"X3NldEFkZHJlc3NWaWV3RnJhbWU6",                                                         //42//-(void)_setAddressViewFrame:(CGRect)frame;
                           @"X3JvdGF0ZUVuY2xvc2luZ1Njcm9sbFZpZXc6dG9GcmFtZTp3aXRoVmlzaWJsZUhlaWdodDpyb3RhdGlvbkRlbGVnYXRlOg==",
                           //43//-(void)_rotateEnclosingScrollView:(id)view toFrame:(CGRect)frame withVisibleHeight:(float)visibleHeight rotationDelegate:(id)delegate;
                           @"X2RlZmF1bHRTY3JvbGxWaWV3Q29udGVudFNpemU=",                                             //44//-(CGSize)_defaultScrollViewContentSize;
                           @"X3pvb21Ub1JlY3Q6d2l0aFNjYWxlOg==",                                                     //45//-(void)_zoomToRect:(CGRect)rect withScale:(float)scale;
                           @"X3pvb21Ub1JlY3Q6ZW5zdXJpbmdWaXNpYmlsaXR5T2ZSZWN0OndpdGhTY2FsZTpmb3JjZVNjcm9sbDpmb3JtQXNzaXN0YW50RnJhbWU6YW5pbWF0aW9uRHVyYXRpb246",
                           //46//-(void)_zoomToRect:(CGRect)rect ensuringVisibilityOfRect:(CGRect)rect2 withScale:(float)scale forceScroll:(BOOL)scroll formAssistantFrame:(CGRect)frame animationDuration:(double)duration;
                           @"X3pvb21Ub1JlY3Q6ZW5zdXJpbmdWaXNpYmlsaXR5T2ZSZWN0OndpdGhTY2FsZTpmb3JjZVNjcm9sbDo=",
                           //47//-(void)_zoomToRect:(CGRect)rect ensuringVisibilityOfRect:(CGRect)rect2 withScale:(float)scale forceScroll:(BOOL)scroll;
                           @"X3pvb21Ub05vZGU6Zm9yY2VTY3JvbGw6",                                                     //48//-(void)_zoomToNode:(id)node forceScroll:(BOOL)scroll;
                           @"X2NlbnRlclJlY3Q6Zm9yU2l6ZUNoYW5nZTp3aXRoVmlzaWJsZUhlaWdodDpwaW5uaW5nRWRnZTo=",
                           //49//-(void)_centerRect:(CGRect)rect forSizeChange:(BOOL)sizeChange withVisibleHeight:(float)visibleHeight pinningEdge:(int)edge;
                           @"X2FjdGl2ZVJlY3RGb3JSZWN0VG9DZW50ZXI6",                                                 //50//-(CGRect)_activeRectForRectToCenter:(CGRect)center;
                           @"d2ViVmlld0RpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQ6",                                         //51//-(void)webViewDidPreventDefaultForEvent:(id)webView;
                           @"X2NvbnZlcnRXaW5kb3dQb2ludFRvVmlld3BvcnQ6",                                             //52//-(CGPoint)_convertWindowPointToViewport:(CGPoint)viewport;
                           @"X3dlYlRvdWNoRXZlbnRzUmVjb2duaXplZDo=",                                                 //53//-(void)_webTouchEventsRecognized:(id)recognized;
                           @"X2hhbmRsZURlZmVycmVkRXZlbnRz",                                                         //54//-(void)_handleDeferredEvents;
                           @"X2RlZmVyV2ViRXZlbnQ6",                                                                 //55//-(void)_deferWebEvent:(id)event;
                           @"X2VuZERlZmVycmluZ0V2ZW50cw==",                                                         //56//-(void)_endDeferringEvents;
                           @"X3N0YXJ0RGVmZXJyaW5nRXZlbnRz",                                                         //57//-(void)_startDeferringEvents;
                           @"X2Rpc3BhdGNoV2ViRXZlbnQ6",                                                             //58//-(void)_dispatchWebEvent:(id)event;
                           @"X3Nob3VsZERlZmVyRXZlbnRz",                                                             //59//-(BOOL)_shouldDeferEvents;
                           @"d2ViVmlldzplbGVtZW50RGlkQmx1ck5vZGU6",                                                 //60//-(void)webView:(id)view elementDidBlurNode:(id)element;
                           @"d2ViVmlldzplbGVtZW50RGlkRm9jdXNOb2RlOg==",                                             //61//-(void)webView:(id)view elementDidFocusNode:(id)element;
                           @"d2ViVmlld0Zvcm1FZGl0ZWRTdGF0dXNIYXNDaGFuZ2VkOg==",                                     //62//-(void)webViewFormEditedStatusHasChanged:(id)changed;
                           @"aXNBdXRvRmlsbGluZw==",                                                                 //63//-(BOOL)isAutoFilling;
                           @"aXNBdXRvRmlsbE1vZGU=",                                                                 //64//-(BOOL)isAutoFillMode;
                           @"YXV0b0ZpbGxXaXRoRWxlbWVudFZhbHVl",                                                     //65//-(void)autoFillWithElementValue;
                           @"YWNjZXB0ZWRBdXRvRmlsbFdvcmQ6",                                                         //66//-(void)acceptedAutoFillWord:(id)word;
                           @"d2ViVmlldzpkaWRGaXJzdExheW91dEluRnJhbWU6",                                             //67//-(void)webView:(id)view didFirstLayoutInFrame:(id)frame;
                           @"d2ViVmlldzpkaWRGYWlsTG9hZFdpdGhFcnJvcjpmb3JGcmFtZTo=",                                 //68//-(void)webView:(id)view didFailLoadWithError:(id)error forFrame:(id)frame;
                           @"d2ViVmlldzpkaWRGaW5pc2hMb2FkRm9yRnJhbWU6",                                             //70//-(void)webView:(id)view didFinishLoadForFrame:(id)frame;
                           @"d2ViVmlldzpkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lOg==",                             //71//-(void)webView:(id)view didStartProvisionalLoadForFrame:(id)frame;
                           @"d2ViVmlldzp3aWxsQ2xvc2VGcmFtZTo=",                                                     //72//-(void)webView:(id)view willCloseFrame:(id)frame;
                           @"X2F1dG9GaWxsRnJhbWU6",                                                                 //73//-(void)_autoFillFrame:(id)frame;
                           @"X3Jlc2V0Rm9ybURhdGFGb3JGcmFtZTo=",                                                     //74//-(void)_resetFormDataForFrame:(id)frame;
                           @"dGV4dEZvcm1FbGVtZW50",                                                                 //75//-(id)textFormElement;
                           @"Zm9ybUVsZW1lbnQ=",                                                                     //76//-(id)formElement;
                           @"Y2FuQXV0b0ZpbGw=",                                                                     //77//-(BOOL)canAutoFill;
                           @"Zm9ybURlbGVnYXRlSGFuZGxlVGV4dENoYW5nZVdpdGhBdXRvRmlsbFN1Z2dlc3Rpb25zOg==",             //78//-(void)formDelegateHandleTextChangeWithAutoFillSuggestions:(BOOL)autoFillSuggestions;
                           @"X3Njcm9sbENhcmV0VG9WaXNpYmxlOg==",                                                     //79//-(void)_scrollCaretToVisible:(id)visible;
                           @"YWNjZXNzb3J5Q2xlYXI=",                                                                 //80//-(void)accessoryClear;
                           @"YWNjZXNzb3J5QXV0b0ZpbGw=",                                                             //81//-(void)accessoryAutoFill;
                           @"YWNjZXNzb3J5VGFiOg==",                                                                 //82//-(void)accessoryTab:(BOOL)tab;
                           @"YWNjZXNzb3J5RG9uZQ==",                                                                 //83//-(void)accessoryDone;
                           @"YXNzaXN0Rm9ybU5vZGU6",                                                                 //84//-(void)assistFormNode:(id)node;
                           @"YXNzaXN0Rm9ybU5vZGVGb3JUeXBpbmc6",                                                     //85//-(void)assistFormNodeForTyping:(id)typing;
                           @"X3VwZGF0ZUFjY2Vzc29yeQ==",                                                             //86//-(void)_updateAccessory;
                           @"X2Rpc3BsYXlGb3JtTm9kZUlucHV0Vmlldw==",                                                 //87//-(void)_displayFormNodeInputView;
                           @"X3N0b3BBc3Npc3RpbmdGb3JtTm9kZQ==",                                                     //88//-(void)_stopAssistingFormNode;
                           @"c2V0Qm91bmRzOg==",                                                                     //89//-(void)setBounds:(CGRect)bounds;
                           @"c2V0RnJhbWU6",                                                                         //90//-(void)setFrame:(CGRect)frame;
                           @"X3VwZGF0ZVNjcm9sbGVyVmlld0ZvcklucHV0Vmlldzo=",                                         //91//-(void)_updateScrollerViewForInputView:(id)inputView;
                           @"X3VwZGF0ZUZpeGVkUG9zaXRpb25pbmdPYmplY3RzTGF5b3V0U29vbg==",                             //92//-(void)_updateFixedPositioningObjectsLayoutSoon;
                           @"X3VwZGF0ZUZpeGVkUG9zaXRpb25Db250ZW50",                                                 //93//-(void)_updateFixedPositionContent;
                           @"X3VwZGF0ZUZpeGVkUG9zaXRpb25pbmdPYmplY3RzTGF5b3V0QWZ0ZXJTY3JvbGw=",                     //94//-(void)_updateFixedPositioningObjectsLayoutAfterScroll;
                           @"X2tleWJvYXJkV2lsbEhpZGU6",                                                             //95//-(void)_keyboardWillHide:(id)_keyboard;
                           @"X2tleWJvYXJkV2lsbFNob3c6",                                                             //96//-(void)_keyboardWillShow:(id)_keyboard;
                           @"X2tleWJvYXJkRGlkQ2hhbmdlRnJhbWU6",                                                     //97//-(void)_keyboardDidChangeFrame:(id)_keyboard;
                           @"X2tleWJvYXJkV2lsbENoYW5nZUZyYW1lOg==",                                                 //98//-(void)_keyboardWillChangeFrame:(id)_keyboard;
                           @"X3NldElucHV0Vmlld0JvdW5kc0ZvckF1dG9tYXRpY0tleWJvYXJkSW5mbzphZGp1c3RTY3JvbGxWaWV3Og==",
                           //99//-(void)_setInputViewBoundsForAutomaticKeyboardInfo:(id)automaticKeyboardInfo adjustScrollView:(BOOL)view;
                           @"X3N0b3BBc3Npc3RpbmdOb2RlOg==",                                                         //100//-(void)_stopAssistingNode:(id)node;
                           @"X3N0YXJ0QXNzaXN0aW5nTm9kZTo=",                                                         //101//-(void)_startAssistingNode:(id)node;
                           @"X3N0b3BBc3Npc3RpbmdLZXlib2FyZA==",                                                     //102//-(void)_stopAssistingKeyboard;
                           @"X3N0YXJ0QXNzaXN0aW5nS2V5Ym9hcmQ=",                                                     //103//-(void)_startAssistingKeyboard;
                           @"X3Byb21wdEZvclJlcGxhY2U6",                                                             //104//-(void)_promptForReplace:(id)replace;
                           @"cGxheXNOaWNlbHlXaXRoR2VzdHVyZXM=",                                                     //105//-(BOOL)playsNicelyWithGestures;
                           @"X2VkaXRpbmdEZWxlZ2F0ZQ==",                                                             //106//-(id)_editingDelegate;
                           @"Y29weTo=",                                                                             //107//-(void)copy:(id)copy;
                           @"Y2FuUGVyZm9ybUFjdGlvbjp3aXRoU2VuZGVyOg==",                                             //108//-(BOOL)canPerformAction:(SEL)action withSender:(id)sender;
                           @"aW5wdXRWaWV3",                                                                         //109//-(id)inputView;
                           @"aW5wdXRBY2Nlc3NvcnlWaWV3",                                                             //110//-(id)inputAccessoryView;
                           @"X2hhbmRsZUtleUV2ZW50Og==",                                                             //111//-(void)_handleKeyEvent:(GSEventRef)event;
                           @"cmVzaWduRmlyc3RSZXNwb25kZXI=",                                                         //112//-(BOOL)resignFirstResponder;
                           @"dGV4dERvY3VtZW50",                                                                     //113//-(id)textDocument;
                           @"X2tleWJvYXJkUmVzcG9uZGVy",                                                             //114//-(id)_keyboardResponder;
                           @"X3JlcXVpcmVzS2V5Ym9hcmRSZXNldE9uUmVsb2Fk",                                             //115//-(BOOL)_requiresKeyboardResetOnReload;
                           @"X3JlcXVpcmVzS2V5Ym9hcmRXaGVuRmlyc3RSZXNwb25kZXI=",                                     //116//-(BOOL)_requiresKeyboardWhenFirstResponder;
                           @"aXNFZGl0YWJsZQ==",                                                                     //117//-(BOOL)isEditable;
                           @"aW5zdGFsbEdlc3R1cmVSZWNvZ25pemVycw==",                                                 //118//-(void)installGestureRecognizers;
                           @"ZGVhbGxvYw==",                                                                         //119//-(void)dealloc;
                           @"aW5pdFdpdGhXZWJWaWV3OmZyYW1lOg==",                                                     //120//-(id)initWithWebView:(id)webView frame:(CGRect)frame;
                           ];
    }
    return self;
}

@end
